package com.ys.service.impl;

import com.ys.bean.ProductBean;

import com.ys.dao.ProductBeanMapper;
import com.ys.service.IProductService;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import javax.annotation.Resource;
import java.util.List;

@Service
public class ProductService implements IProductService {

    // 依赖注入和反转控制
    @Resource
    private ProductBeanMapper productM;

    @Override
    public List<ProductBean> doLogin(ProductBean productBean) {
        // 调用Dao层进行数据库查询操作
        List<ProductBean> lstProducts = productM.doLogin(productBean);
        return lstProducts;
    }

    @Override
    public int saveOrUpdateProduct(ProductBean productBean) {
        //默认返回值
        int i = 0;
        // 调用Dao层进行数据库数据保存和修改操作
        //进行新增还是保存的业务逻辑处理
        //通过判定实体类中的主键字段userID是否为null，来决定新增修改操作
        if (productBean != null && productBean.getPrId() != null) {
            //修改操作

            i = productM.updateByPrimaryKeySelective(productBean);
        } else {
            //新增操作
            i = productM.insertSelective(productBean);
        }
        return i;
    }

    @Override
    @Transactional
    public int saveOrUpdateProduct2(ProductBean productBean) {
        //默认返回值
        int i = 0;
        // 调用Dao层进行数据库数据保存和修改操作
        //进行新增还是保存的业务逻辑处理
        //通过判定实体类中的主键字段userID是否为null，来决定新增修改操作
        if (productBean != null && productBean.getPrId() != null) {
            //修改操作

            i = productM.updateByPrimaryKeySelective2(productBean);
        } else {
            //新增操作
            i = productM.insertSelective(productBean);
        }
        return i;
    }

    @Override
    public List<ProductBean> selectProductByParams(ProductBean record) {
        // 调用dao曾经进行数据库查询操作
        List<ProductBean> lstProducts = productM.selectProductByParams(record);
        // 返回结果集
        return lstProducts;
    }

    @Override
    public int deleteProductByID(Integer prId) {
        //默认返回值
        int i = 0;
        //调用dao  层进行删除操作
        // 删除
        i = productM.deleteByPrimaryKey(prId);

        return i;
    }

    @Override
    public int updateKUCUN(int count, Integer prId) {
        return 0;  //默认返回值

    }


}